<?php
/*
 * Interfaz
 */

/*
 * Muestra un cuadro de error con el mensaje especificado
 */

function errdiv($text) {
	echo '<div class="error">'.$text.'</div>';
}

/*
 * Muestra una tabla con las filas contenidas en el array pasado como 
 * argumento
 */

function show_table($files) {
	$text = '<table class="list">';
	$text .= '<tr>
		<th>Nombre</th>
		<th>Descripción</th>
		<th>Tamaño</th>
		<th>Fecha</th></tr>';

	$i = 0;
	foreach ($files as $file) {
		if ($i%2 == 0) {
			$trClass = 'even';
		} else {
			$trClass = 'odd';
		}

		$text .= '<tr class="'.$trClass.'">
					<td>'.mimetype_icon($file->mimetype).' '.$file->nombre.'</td>
					<td>'.$file->descripcion.'</td>
					<td>'.readable_size($file->tamkb).'</td>
					<td>'.date("d/m/Y, H:i", $file->fecha).'</td>
				 </tr>';
        $i++;
	}


	$text .= '</table>';

	echo $text;
}

/*
 * Devuelve un tag <img> para un mimetype determinado
 */

function mimetype_icon($mimetype) {
	switch ($mimetype) {
	case 'application/pdf':
		$img = 'pdf.gif';
		break;
	case 'application/zip':
	case 'application/x-gzip':
	case 'application/x-tar':
	case 'application/x-bz2':
		$img = 'comprimido.gif';
		break;
	default:
		$img = 'defecto.gif';
	}

	return '<img align="middle" src="img/mimetypes/'.$img.'" alt="'.$mimetype.'" />';
}

/*
 * Devuelve un tamaño en formato "legible" a partir de un tamaño en kB
 */

function readable_size($size) {
	$units = array('kB', 'MB', 'GB', 'TB');
	$ind = 1;
	$ref = 1024;
	while ($ind < count($units) && $size >= $ref) {
		$ref *= 1024;
		$ind++;
	}

	return sprintf('%01.2f %s', $size/($ref/1024), $units[$ind-1]);
}


?>
